﻿using Seg.Entidades;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Seg.Datos
{
  public class PaisDatos
    {
        BD_SEGEntities context = new BD_SEGEntities();

        public int Insertar(Pais entidad)
        {
            entidad.CodigoPais = GenerarCodigo();
            context.Pais.Add(entidad);
            context.SaveChanges();
            return 1;
        }


        public int Actualizar(Pais entidad)
        {
            var objUpd = context.Pais.Where(x => x.CodigoPais == entidad.CodigoPais).FirstOrDefault();

           objUpd.Nombre = entidad.Nombre;
           objUpd.Oficina = entidad.Oficina;
           objUpd.Anulado = entidad.Anulado;

           context.SaveChanges();
            return 1;
        }
        public int Eliminar(int id  )
        {
            var objUpd = context.Pais.Where(x => x.CodigoPais == id).FirstOrDefault();
            objUpd.Anulado = true;
            var r = context.SaveChanges();
            return r;
        }
        public List<Pais> Listar(string nombre, string anulado)
        {
            var datos = new List<Seg.Entidades.Pais>();

            if (anulado == "0")
            {
                datos = context.Pais.Where(x =>
                    ((x.Nombre.Contains(nombre) || nombre == ""))
                ).ToList();
            }
            else
            {
                var anul = anulado == "A" ? false : true;
                datos = context.Pais.Where(x =>
                    ((x.Nombre.Contains(nombre) || nombre == "")
                    && (x.Anulado == anul))
                ).ToList();
            }
            return datos;
        }
        int GenerarCodigo()
        {
            var actual = context.Oficina.Max(x => x.CodigoOficina);
            return actual+1;
        }
        public Pais ObtenerPais(decimal id)
        {
            var datos = context.Pais.Where(x => x.CodigoPais == id).FirstOrDefault();
            return datos;
        }
    
    }
}
